## 1.4. What This Book Offers

Based originally on the classic O'Reilly & Associates quick reference, Unix in a Nutshell, this book has been expanded to include much information that is specific to Linux. The current edition includes chapters on package managers (which make it easy to install, update, and remove related software files), on the KDE and GNOME desktops, and on the fvwm window manager, as well as new commands and expanded discussions of several topics such as CVS and bash.

Linux in a Nutshell doesn't teach you Linux--it is, after all, a quick reference -- but novices as well as highly experienced users will find it of great value. When you have some idea what command you want but aren't sure just how it works or what combinations of options give you the exact output required, this book is the place to turn. It is also an eye-opener: it can make you aware of options that you never knew about before.

Like computer systems from the age in which Unix was born (the early 1970s), Linux is mostly a command-driven system. Most versions of Linux provide a few graphical tools, and several commercial products are available, but none of these graphical utilities are central to Linux. That is why this book, like the traditional Unix in a Nutshell reference, focuses on the shell and on commands you run from the shell.

Of course, Linux offers a windowing system -- a very rich and flexible one, as befits a rich and flexible operating system. But a lot of the time you'll just open a simulated VT100 terminal (the xterm program) and enter commands into that. You'll find yourself moving back and forth between graphical programs and the commands listed in this book.

So the first thing you've got to do, once you're over the hurdle of installing Linux, is get to know the common utilities run from the shell prompt. If you know absolutely nothing about Unix, we recommend you read a basic guide (introductory chapters in the O'Reilly books Learning Red Hat Linux, Learning Debian GNU/Linux, and Running Linux can get you started). This book offers a context for understanding different kinds of commands (including commands for programming, system administration, and network administration) in Chapter 2, "System and Network Administration Overview", followed by the command reference itself in Chapter 3, "Linux Commands". Chapter 3, "Linux Commands" is obviously the central focus of the book, containing about one third its bulk.

The small chapters immediately following Chapter 3, "Linux Commands" help you get your system set up. Since most users do not want to completely abandon other operating systems (whether a Microsoft Windows system, OS/2, or some Unix flavor), Linux often resides on the same computer as other systems. The user can boot the system he needs for a particular job. Chapter 4, "Boot Methods", lists the commonly used booting options on Intel systems, including LILO (Linux Loader) and Loadlin. Chapter 5, "Red Hat and Debian Package Managers", covers the Red Hat package manager (rpm), which is supported by both the Red Hat and the SuSE distributions, and the Debian package manager (dpkg). Package managers are crucial for installing and updating software; they make sure you have all the files you need in the proper versions.

All commands are interpreted by the shell. The shell is simply a program that accepts commands from the user and executes them. Different shells sometimes use slightly different syntax to mean the same thing. Under Linux, two popular shells are bash and tcsh, and they differ in subtle ways. (One of the nice things about Linux, and other Unix systems is that you have a variety of shells to choose from, each with strengths and weaknesses.) We offer several chapters on shells. You may decide to read these after you've used Linux for a while, because they mostly cover powerful, advanced features that you'll want when you're a steady user.

In order to get real work done, you'll have to learn some big, comprehensive utilities: notably an editor and some scripting tools. Two major editors are used on Linux: vi and Emacs. Both have chapters in this book. Following the editors come two chapters on classic Unix tools for manipulating text files on a line-by-line basis: sed and gawk (the GNU version of the traditional awk). O'Reilly also has a separate book about each of these topics that you may find valuable, because none is completely intuitive upon first use. (Emacs does have an excellent built-in tutorial, though; to invoke it, press Ctrl-H followed by t for "tutorial.")

CVS (Concurrent Versions System) and RCS (Revision Control System) manage files so you can retrieve old versions and maintain different versions simultaneously. Originally used by programmers who have complicated requirements for building and maintaining applications, these tools have turned out to be valuable for anyone who maintains files of any type, particularly when coordinating a team of people. CVS is a layer on top of RCS that makes it easier for multiple people to edit a file simultaneously. Chapter 14, "CVS and RCS", presents CVS and RCS commands.

Every distribution of Linux is slightly different, but you'll find that the commands we document are what you use most of the time and that they work the same on all distributions. Basic commands, programming utilities, system administration, and network administration are all covered here. But some areas were so big that we had to leave them out. The many applications that depend on the X Window System didn't make the cut. Nor did TeX (a text-processing tool used extensively in academia and by Linux users in general), or the many useful programming languages like Perl, Tcl/Tk, and Python with which users vastly expand the capabilities of their systems. These subjects would stretch the book out of its binding.

Our goal in producing this book is to provide convenience, and that means keeping it small. It certainly doesn't have everything the manual pages have. But you'll find that it has what you need 95% of the time.

Copyright © 2001 O'Reilly & Associates. All rights reserved.